\section{Experimental results} 

In this section, we evaluate the test time and yield improvement of the purposed BIST design. 
%using an in-house cycle-accurate simulator. 
The delay time of a TSV is simulated with HSPICE using the electrical model shown in Figure~\ref{fig:tsv}. The TSV resistance and capacitance fluctuation is described by normal distribution N($\mu$,$\sigma^2$). The TSVs at the edge of the cluster suffer larger process variation, so that their $\sigma_{edge}$ is $\gamma(=1.2)$ times bigger than the $\sigma$ of normal TSVs. A delay time library was built, so that the BIST simulator can quickly find the delay for a specific R and C configuration.

Monte Carlo method is used to simulate the yield of a TSV cluster. 100,000 TSV cluster instances were created and their yield maps were generated with different delay thresholds. The breadth-first search algorithm was simulated at per-cycle level using a Matlab program for each instance, where the yield map at a specific delay threshold is used as its input. For each delay threshold, the yield before and after applying redundancy is statistically analyzed among all instances, and the average test time is calculated.


\begin{figure}
\centering
\includegraphics[width=0.45\textwidth]{figure/plot1}
\caption{\small{Relationship of TSV cluster yield and number of
    redundant TSVs required to reach 98\% TSV cluster yield}}
\label{fig:yield}
\end{figure}


\noindent\textbf{1)	For a target yield, calculate the number of redundant TSV needed.}
The number of redundant TSV groups needs to be determined at the beginning of the BIST design. It is related to the yield of the TSV cluster, and also the size of the cluster. The Monte Carlo simulation results of three cluster sizes were plotted in Figure~\ref{fig:yield}.  These three sizes cover the reasonable cluster sizes in 3D IC design. The cluster yield in X axis is calculated as the percentage of instances that are defect-free in the Monte Carlo simulation. The target yield for this analysis is set to 0.98. The Y axis indicates the percentage of redundant TSVs achieve this target cluster yield. At higher yield ($>50\%$), the number of redundancy remains almost unchanged. This illustrates that only one or two defect sites appear for most of the instance. In this case,  including a small amount of redundant TSVs  can fix most of the failed clusters. At low yield, the number of redundant TSVs required increases quickly, which indicates the increase of the defects number. The amount of resources used in a small cluster, 6 by 6 for example, is larger than a big cluster. It is better to share the redundancy resource among more TSVs. When the cluster size increases larger than 10 by 10, the benefit of sharing is not very obvious, so that test time will become a more important consideration.

\begin{figure*}
\centering
\includegraphics[width=1\textwidth]{figure/plot6in1}
\caption{\small{Comparison of average test time (top row) and yield after applied redundancy (bottom row) for several schemes. The X axis represents the TSV cluster yield before applied redundancy. (A) One redundant TSV placed in the center of the cluster; (B) One redundant TSV placed at the edge of the cluster; (C) Three redundant TSVs placed at the edge. Three cluster size were used in experiment, which is (black) 6x6 TSV cluster, (blue) 10x10 array, and (red) 16x16 array.}}
\label{fig:yield2}
\end{figure*}

\noindent\textbf{2)	Performance Evaluation.}
The efficiency of this TSV redundancy design is evaluated by its
testing time and the yield improvement. Three redundancy
configurations are studied, including 1) one extra TSV in the center;
2) one extra TSV at the edge; and 3) three extra TSVs at the edge. The
simulation results are shown in Figure~\ref{fig:yield2}.

The top row shows that the average test time for one cluster increases when its yield becomes lower. However, when the number of
defects is larger than one, there is no enough redundancy resource to
fix it and the search process stops after a few cycles of tests. That
is the reason for the quick decrease at the low yield end. The
maximum test time appears at the yield of 0.2-0.4. The test time also depends on the cluster size. A smaller array needs fewer cycles
to locate the defect position. However, the difference is only 2-3
test cycles between a 6x6 and a 16x16 array. The time complexity of the
search algorithm is $d*log(n)$, and usually $d$ is 1-2 in the high yield
region. The effect of cluster size on testing time is logarithmic, so
that the testing time variation is small.

The bottom row shows the improvement in cluster yield with different
defect rates. The X axis is the initial yield before applying
redundancy. The diagonal line is the reference, and the vertical
distance between the data curve and the diagonal line is the
improvement of yield by applying the redundancy scheme, as shown by
the arrow at the left bottom plot. The improvement is large at the
middle portion of the curve. This observation points out that a 3D
connection process with low yield benefits more from this BIST
design. The yield improvement depends on cluster size and the number of
extra TSV groups. For a large cluster, the curve changes slightly
among several configurations. On the other hand, the curve for a small
cluster changes rapidly when the extra TSV group number increases.

Comparing the cases that only one extra TSV group is placed at
different locations (left and middle columns), the shape of the
average testing time curves are similar. The average testing time is around 1
cycle lower for the 16x16 cluster when the redundant TSV group is
placed at the edge. The average yield is higher for TSVs in the
center, so that the cluster has high possibility to be a good one and
pass the test in one cycle.

Comparing the cases that one or three redundant TSV groups are applied
and placed at the edge, the test time and
yield curves show big difference (middle and right columns). The test
time for the 16x16 size cluster does not change much. However, the shape of the
curves changes largely for small clusters. When the redundant TSV
groups increases, it is possible to fix more defects. The search
process keeps running even for very poor yield clusters and tries to
fix it with the abundant resource. The yield curve shows great
improvement (70\%-80\%) at the low initial yield portion for small
clusters.

